import { ImageModeVo } from '@/views/bus/jqtSpreadLink/mode/imageMode.vue';
import { ImageTextModeVo } from '@/views/bus/jqtSpreadLink/mode/imageTextMode.vue';
import { DialogModeVo } from '@/views/bus/jqtSpreadLink/mode/dialogMode.vue';
import { DialogModeSetVo } from '@/views/bus/jqtSpreadLink/mode/dialogSetMode.vue';
import { KeywordModeVo } from '@/views/bus/jqtSpreadLink/mode/keywordMode.vue';
import { KeywordModeSetVo } from '@/views/bus/jqtSpreadLink/mode/keywordSetMode.vue';

export interface JqtSpreadLinkVO {
  /**
   * 唯一ID
   */
  id: string | number;

  /**
   * 备注
   */
  remark: string;

  /**
   * 创建人id
   */
  userId: string | number;

  /**
   * 落地页名称
   */
  linkName: string;

  /**
   * 落地页url(设置好规则后生成)
   */
  spreadUrl: string;

  /**
   * 状态(0.正常 1.停用)
   */
  status: string;

  /**
   * 页面模式(1001.图片模式 1002.图文交互模式 1003.问答模式 1004.关键回复模式 1005.好友名片模式)
   */
  pageMode: string;

  /**
   * 页面模式内容(JSON)
   */
  pageModeContent: PageModeContent;

  /**
   * 跳转设置(JSON)
   */
  skipSet: SkipSet;

  /**
   * 广告回传(JSON)
   */
  adverBack: AdverBack;

  /**
   * 广告回传比例;设置100%表示全部回传。如设置70%就回传70条
   */
  adverBackRatio: number;

  /**
   * 广告回传模式(0.自动回传 1.手动回传)
   */
  adverBackAuto: string;

}

export interface JqtSpreadLinkForm extends BaseEntity {
  /**
   * 唯一ID
   */
  id?: string | number;

  /**
   * 备注
   */
  remark?: string;

  /**
   * 创建人id
   */
  userId?: string | number;

  /**
   * 落地页名称
   */
  linkName?: string;

  /**
   * 落地页url(设置好规则后生成)
   */
  spreadUrl?: string;

  /**
   * 状态(0.正常 1.停用)
   */
  status?: string;

  /**
   * 页面模式(1001.图片模式 1002.图文交互模式 1003.问答模式 1004.关键回复模式 1005.好友名片模式)
   */
  pageMode?: string;

  /**
   * 页面模式内容(JSON)
   */
  pageModeContent?: PageModeContent;

  /**
   * 跳转设置(JSON)
   */
  skipSet?: SkipSet;

  /**
   * 广告回传(JSON)
   */
  adverBack?: AdverBack;

  /**
   * 广告回传比例;设置100%表示全部回传。如设置70%就回传70条
   */
  adverBackRatio?: number;

  /**
   * 广告回传模式(0.自动回传 1.手动回传)
   */
  adverBackAuto?: string;

}

export interface JqtSpreadLinkQuery extends PageQuery {

  /**
   * 创建人id
   */
  userId?: string | number;

  /**
   * 落地页名称
   */
  linkName?: string;

  /**
   * 落地页url(设置好规则后生成)
   */
  spreadUrl?: string;

  /**
   * 状态(0.正常 1.停用)
   */
  status?: string;

  /**
   * 页面模式(1001.图片模式 1002.图文交互模式 1003.问答模式 1004.关键回复模式 1005.好友名片模式)
   */
  pageMode?: string;

  /**
   * 页面模式内容(JSON)
   */
  pageModeContent?: string;

  /**
   * 跳转设置(JSON)
   */
  skipSet?: string;

  /**
   * 广告回传(JSON)
   */
  adverBack?: string;

  /**
   * 广告回传比例;设置100%表示全部回传。如设置70%就回传70条
   */
  adverBackRatio?: number;

  /**
   * 广告回传模式(0.自动回传 1.手动回传)
   */
  adverBackAuto?: string;

    /**
     * 日期范围参数
     */
    params?: any;
}


// 页面模式
export interface PageModeContent {
  // 通用结构，支持多种模式
  image?: ImageModeVo;
  imageText?: ImageTextModeVo[];
  dialog?: DialogModeVo;
  dialogSet?: DialogModeSetVo;
  keyword?:KeywordModeVo;
  keywordSet?:KeywordModeSetVo;
  [key: string]: any; // 泛型扩展
}

// 跳转设置
export interface SkipSet {
  // 跳转模式 0.直接跳转 1.收集线索后跳转
  mode?: string;
  //收集线索 mode = 1
  collectClue?: CollectClueVo;
  //跳转类型 0.跳转获客助手 1.跳转指定链接 2.客服微信号 3.微信小程序 4.企微互通
  type?: string;
  //获客助手 type = 0
  linksIds?:string[] | number[];
  //获客助手信息 type = 0
  linksInfos?:SkipTypeLinks[];
  //跳转链接 type = 1
  skipUrl?: string;
  //客服微信号id type = 2
  wxIds?:string[] | number[];
  //跳转链接信息 type = 0
  wxInfos?:SkipTypeWx[];
  //小程序id type = 3
  xcxIds?:string[] | number[];
  //企微互通 type = 4
  wxHtUserIds?:string[] | number[];
  //企微互通 type = 4
  wxHtUsers?:SkipTypeWxHtUser[];

  [key: string]: any; // 泛型扩展
}

//获客助手跳转客服
export interface SkipTypeLinks {
  // 链接ID
  linksId?: string | number;
  // 链接名称
  linksName?: string;
  // 粉丝数限制
  fansLimit?:number;
  // 兜底员工 0.否 1.是
  backstop?:string;
  [key: string]: any; // 泛型扩展
}

//客服微信
export interface SkipTypeWx {
  // 微信ID
  wxId?: string | number;
  // 微信名称
  wxName?: string;
  // 粉丝数限制
  fansLimit?:number;
  // 兜底员工 0.否 1.是
  backstop?:string;
  [key: string]: any; // 泛型扩展
}

//企微互通客服
export interface SkipTypeWxHtUser {
  // 互通用户id
  htUserId?: string | number;
  // 互通用户备注
  nameRemark?: string;
  // 粉丝数限制
  fansLimit?:number;
  // 兜底员工 0.否 1.是
  backstop?:string;
  [key: string]: any; // 泛型扩展
}
/**
 * 收集线索
 */
export interface CollectClueVo {
  clueForms: CollectClueForm[];
  // 标题
  title?: string;
  // 按钮文字
  btnText?: string;
  // 按钮颜色
  btnColor?: string;
}

/**
 * 收集线索表单
 */
export interface CollectClueForm{
  //类型 0.手机号 1.文本 2.数字 3.单项选择 4.多项选择
  type?:string;
  //标题
  title?:string;
  //默认值，单选或多选时使用，使用|分割。例如：男|女
  defaultValue?:string;
  //必填 0.否 1.是
  required?:string;
}

// 广告回传
export interface AdverBack {
  // 回传平台
  platformInfo?: {
    //1.抖音巨量 2.快手磁力 3.百度推广 4.腾讯推广 0.不回传
    type?: string;
    //抖音不回传APP 1.抖音 2.抖音极速版 3.抖音火山版 4.头条 5.头条极速版 6.西瓜视频
    douYinNotBack?:string[];
    //百度推广Token
    baiDuToken?:string;
  };
  adverBackEvent?:AdverBackEvent[]
  [key: string]: any; // 泛型扩展
}

//回传事件
export interface AdverBackEvent {
  //用户动作 0.好友申请 1.成功添加好友 2.首次开口 3.3次开口 4.5次开口 5.10次开口
  userAction?:string;
  //事件id 0.不回传 1.微信_添加企业微信 2.微信复制 3.电话拨打
  // 4.表单提交 5.有效咨询 6.有效获客 7.访问目标页面 8.商品购买
  // 9.其他 10.注册 11.付费 12.用户多次付费
  // 13.回访_信息确认 14.回访_加为好友 15.回访_高潜成交 16.支付_存在意向 17.按钮点击 18.店铺停留
  // 19.微信_二维码展示 20.微信_长按二维码
  event?:string;
  //事件名称
  eventName?:string;
  //备注
  remarks?:string;
}
